package com.lovegu.linked_list;

/**
 * <p>
 * LinkedList接口
 * </p>
 *
 * @author 老顾
 * @since 2023/3/20
 */
public interface List<E> {

    /**
     * 增加节点
     *
     * @param e 元素
     * @return true/false
     */
    boolean add(E e);

    /**
     * 增加头节点
     * @param e
     * @return
     */
    boolean addFirst(E e);

    /**
     * 增加尾节点
     *
     * @param e 元素
     * @return true/false
     */
    boolean addLast(E e);

    /**
     * 删除节点
     *
     * @param o 元素
     * @return true/false
     */
    boolean remove(Object o);

    /**
     * 获取节点
     *
     * @param index 下标
     * @return 元素
     */
    E get(int index);

    /**
     * 输出链表
     */
    void printLinkedList();
}
